﻿<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8" />
    <title>查询</title>
    <!--jquery-->
    <script src="../../Scripts/jquery-1.11.0.min.js" type="text/javascript"></script>
    <!--公共JS-->
    <script src="../../Scripts/QueryString.js" type="text/javascript"></script>
    <script src="../../Scripts/config.js" type="text/javascript"></script>
    <script src="../Gener.js" type="text/javascript"></script>
    <link href="../../Scripts/layui/layui/css/layui.css" rel="stylesheet" />
    <link href="../../Scripts/layui/style/admin.css" rel="stylesheet" />
    <script src="../../Scripts/layui/layui/layui.js" type="text/javascript"></script>
    <script src="../../Scripts/layui/LayuiDialog.js" type="text/javascript"></script>
    <base target="_self" />
    <style type="text/css">
        .layui-form-label {
            padding: 9px 0px;
        }

        .layui-form-label {
            margin-bottom: 0px;
        }

        .layui-table th {
            font-weight: bold;
        }
    </style>
    <script language="javascript" type="text/javascript">
        //页面启动函数.
        var frmData = null;
        var mapData = null;
        var webUser = new WebUser();
        var ensName = GetQueryString("EnsName");
        var enName = ensName.substring(0, ensName.length - 1);
        var enPK = "";
        //页面设置信息
        var cfg = new Entity("BP.Sys.EnCfg");
        cfg.No = ensName;
        cfg.RetrieveFromDBSources();
        $(function () {

            if (webUser.No == undefined) {
                alert('登录信息丢失，请重新登录。');
                return;
            }
            if (ensName == null || ensName == undefined) {
                $("#Msg").html("必要的参数EnsName没有传入.");
                return;
            }
            var httpHandler = new HttpHandler("BP.WF.HttpHandler.WF_CommEntity");
            httpHandler.AddUrlData();  //增加参数属性.

            var data = httpHandler.DoMethodReturnString("Dtl_Init");
            if (data.indexOf('err@') == 0) {
                $("#Msg").html(data);
                return;
            }

            //解析json.
            frmData = JSON.parse(data);
            mapData = frmData["Sys_MapData"][0];
            mapData = new Entity("BP.Sys.MapData", mapData);
            document.title = mapData.Name;
            enPK = mapData.GetPara("EntityPK");

            layui.use(['table', 'laydate'], function () {
                var table = layui.table,
                    laydate = layui.laydate;
                InitToolbar();
                //按钮操作
                $('.toolbar').on('click', function () {
                    var id = this.id;
                    switch (id) {
                        case "Add":
                            OpenEn("");
                            break;
                        case "Exp":
                            Export();
                            break;
                        case "Import":
                            Imp();
                            break;
                        case "Setting":
                            Setting();
                            break;
                        default: break;

                    }
                });

                var data = frmData.Dtls;
                //获取列
                var cols = GetColoums(frmData);
                //渲染table
                //主页面数据
                var vtable = table.render({
                    elem: '#tableSearch',
                    id: 'tableSearch',
                    data: data,
                    title: '数据表',
                    limit: Number.MAX_VALUE,
                    height: $(document).height() - $("#toolbar").height()-40,
                    cellMinWidth: 120,
                    cols: [cols],
                    page: false
                });

                //触发行双击事件
                if (cfg.DoubleOrClickModel == 0) {
                    table.on('rowDouble(search)', function (obj) {
                        var row = obj.data;
                        var pkval = row[enPK];

                        var rowstr = JSON.stringify(row);
                        rowstr = encodeURIComponent(rowstr);
                        OpenEn(pkval, rowstr);
                    });
                }
                if (cfg.DoubleOrClickModel == 1) {
                    table.on('row(search)', function (obj) {
                        var row = obj.data;
                        var pkval = row[enPK];

                        var rowstr = JSON.stringify(row);
                        rowstr = encodeURIComponent(rowstr);
                        OpenEn(pkval, rowstr);
                    });
                }

                
            });
        });
       
        function InitToolbar() {

            var _html = "<div class='layui-inline'>";

            //权限控制.
            if (mapData.GetPara("IsInsert") == 1) {
                _html += "<button type='button' class='layui-btn layui-btn-radius layui-btn-sm toolbar' id='Add'>新建</button>";
            }
            if (mapData.GetPara("IsImp") == 1) {
                _html += "<button type='button' class='layui-btn layui-btn-radius layui-btn-sm toolbar' id='Imp'>导入</button>";
            }
            if (mapData.GetPara("IsExp") == 1)
            _html += "<button type='button' class='layui-btn layui-btn-radius  layui-btn-sm toolbar' id='Exp'>导出</button>";

            if (new WebUser().IsAdmin == true)
                _html += "<button type='button' class='layui-btn layui-btn-radius  layui-btn-sm toolbar' id='Setting'>设置</button>";

            $("#toolbar").append(_html);
            layui.form.render();
        }
        function OpenEn(pk,row) {

            if (row != null && row != undefined && row != "")
                row = JSON.parse(decodeURIComponent(row));
            var url = "./En.htm?EnName=" + enName + "&PKVal=" + pk + "&RefPK=" + GetQueryString("RefKey") + "&RefPKVal=" + GetQueryString("RefVal");
            var windowW = document.body.clientWidth*4/5;
            OpenLayuiDialog(url, mapData.Name, windowW, 100, "r", true, false, false, null, function () {
                //关闭弹窗时，刷新本页面，如果父页面时En.htm时页需要刷新
                var httpHandler = new HttpHandler("BP.WF.HttpHandler.WF_CommEntity");
                httpHandler.AddUrlData();  //增加参数属性.
                var data = httpHandler.DoMethodReturnString("Dtl_Init");
                if (data.indexOf('err@') == 0) {
                    $("#Msg").html(data);
                    return;
                }
                //解析json.
                frmData = JSON.parse(data);
                layui.table.reload('tableSearch', { data: frmData.Dtls });
                if (typeof window.parent.vm != "undefined") {
                    var len = frmData.Dtls.length;
                    if (window.parent.vm.tabsList.length > window.parent.vm.selectedTabsIndex) {
                        //修改Tab标签
                        $.each(window.parent.vm.tabsList, function (i, item) {
                            if (i == window.parent.vm.selectedTabsIndex) {
                                item.name = mapData.Name + "(" + len + ")";
                                item.Title = item.name;
                            }
                        })
                        //修改树形菜单
                        var dd = $("dd[data-id='" + ensName + "']", window.parent.document);
                        dd.attr("data-name", mapData.Name + "(" + len + ")");
                        $(dd.find("a")[0]).find("span").html(mapData.Name + "(" + len + ")");
                        $.each(window.parent.vm.menuTreeData, function (i,group) {
                            $.each(group.children, function (k, item) {
                                if (item.No == ensName) {
                                    item.name = mapData.Name + "(" + len + ")";
                                    item.Title = item.name;
                                    return false;
                                }

                            })
                        })
                    }
                }
            });
        }

        function GetColoums(data) {
            var attrs = data.Sys_MapAttr;

           // enPK = sysMapData.GetPara("PK");

            if (attrs == undefined) {
                alert('没有取得属性.');
                return;
            }
            var cols = [];
            var fieldColumns = {};
            fieldColumns = {
                title: '序',
                field: '',
                align: 'center',
                width: 50,
                type: 'numbers',
            };
            cols.push(fieldColumns);
            for (var i = 0; i < attrs.length; i++) {
                var attr = attrs[i];

                if (attr.UIVisible == 0
                    || attr.KeyOfEn == "OID"
                    || attr.KeyOfEn == "WorkID"
                    || attr.KeyOfEn == "NodeID"
                    || attr.KeyOfEn == "MyNum"
                    || attr.KeyOfEn == "MyPK") {
                    keyOfEn = attr.KeyOfEn
                    continue;
                }
             
                var field = attr.KeyOfEn;
                var title = attr.Name;
                var width = attr.Width;
                if (width < 60) {
                    width = 60;
                }
                if (field == "Title") {
                    width = 230;
                }

                if (attr.UIContralType == 1) {
                    if (width == null || width == "" || width == undefined)
                        width = 180;
                    field = field + "Text";
                    fieldColumns = {
                        field: field,
                        title: title,
                        fixed: false,
                        minWidth: width,

                    };
                    cols.push(fieldColumns);
                    continue;
                }

                if (attr.UIContralType == 2) {
                    fieldColumns = {
                        field: field,
                        title: title,
                        minWidth: width,
                        fixed: false,
                        templet: function (row) {
                            var val = "";
                            if (row[this.field] == "0")
                                val = "否";
                            if (row[this.field] == "1")
                                val = "是";
                            return val;

                        }
                    };
                    cols.push(fieldColumns);
                    continue;
                }

                if (width == null || width == "" || width == undefined)
                    width = 100;
                if (attr.IsRichText == "1") {
                    richAttrs.push(attr);
                    fieldColumns = {
                        field: field,
                        title: title,
                        width: width,
                        fixed: false,
                        templet: function (row) {
                            var val = row[this.field];
                            if (val == "")
                                return val;
                            val = htmlDecodeByRegExp(val);
                            return "<div>" + val + "</div>";

                        }
                    };
                    cols.push(fieldColumns);
                    continue;
                }

                if (attr.MyDataType == "6") {
                    fieldColumns = {
                        field: field,
                        title: title,
                        width: width,
                        fixed: false,
                        templet: function (row) {
                            var val = row[this.field];
                            if (val == null || val == undefined || val == "")
                                return "";
                            val = FormatDate(new Date(val), "yyyy-MM-dd");
                            return val;

                        }
                    };
                    cols.push(fieldColumns);
                    continue;
                }


                fieldColumns = {
                    field: field,
                    title: title,
                    minWidth: width,
                    fixed: false,
                   
                };
                cols.push(fieldColumns);
                continue;
            }
           
          
            //fieldColumns = {
            //    field: '_operate',
            //    title: '操作',
            //    minWidth: 200,
            //    align: 'center',
            //    templet: function (row) {
            //        return rowbar(dtMs, row);
            //    }
            //}
            //cols.push(fieldColumns);

            
            return cols;
        }
        function Import() {
            var title = mapData.Name + "导入数据";
            var W = document.body.clientWidth*3/5;
            var url = "../../CCForm/DtlImpByExcel.htm?EnsName=" + GetQueryString("EnsName") + "&RefPKVal=" + GetQueryString("RefVal") + "&FK_MapData=" + GetQueryString("EnName");
            OpenLayuiDialog(url, title, W, 100, 'r', true);
        }

        //导出
        function Export() {
            var handler = new HttpHandler("BP.WF.HttpHandler.WF_CommEntity");
            handler.AddPara("EnsName", GetQueryString("EnsName"));
            handler.AddPara("RefKey", GetQueryString("RefKey"));
            handler.AddPara("RefVal", GetQueryString("RefVal"));
            //查询集合
            var data = handler.DoMethodReturnString("Dtl_Exp");
            if (data.indexOf('err@') == 0) {
                alert(data);
                return;
            }
            data = basePath + "/" + data;
            window.open(data);
            return;

        }
        //设置
        function Setting() {
            //先判断是否有该笔数据.
            var ensName = GetQueryString("EnsName");
            var en = new Entity("BP.Sys.EnCfg");
            en.SetPKVal(ensName);
            var i = en.RetrieveFromDBSources();
            if (i == 0) {
                en.No = ensName;
                en.Insert();
            }
            var url = "./En.htm?EnName=BP.Sys.EnCfg&No=" + GetQueryString("EnsName") + "&m=" + Math.random();
            //获取屏幕的长宽
            var W = document.body.clientWidth*4/5;
            OpenLayuiDialog(url, "", W, 100, "r", true);
        }
    </script>

</head>
<body>
    <div class="layui-fluid">
        <div class="layui-row layui-col-space30">
            <!-- 内容主体区域 -->
            <div class="layui-col-md12" style="padding:10px">
                <div class="layui-card">
                    <div class="layui-card-body">
                        <!--查询条件-->
                        <div>
                            <form class="layui-form" id="toolbar" style="text-align:right;margin-right:20px">
                            </form>
                        </div>
                        <!--查询表格-->
                        <table class="layui-hide" id="tableSearch" lay-filter="search"></table>
                        
                    </div>
                </div>
            </div>
        </div>
    </div>
   
</body>

</html>
